Table:

<?=$this->htmlTable('test1')

    // hide column - don't show it
    ->hideColumn('id')

    // change the title of the column
    ->setColumnTitle('email', 'User Email')

    // parse the value of the column
    ->setParser('password', create_function('$value', 'return "***";'))

    // change style
    ->addColumnStyle('email', "width: 450px;")

    // ask table to calculate summ of this column
    ->calculateSum('id')

    // allow raw html in the column
    ->allowRawHtml('password')

    // injected column
    ->addColumn('getDetails', 'id')

    // option
    ->addOption('approve', 'id', 'id', array('controller'=>'index', 'action'=>'index'))

    // conditional skip of the option
    ->skipOption('approve', create_function('$row', 'return true;'))

    // conditional skip of the option
    ->appendOptionToColumn('approve', 'email')

    // option
    ->addOption('test', null, null, array('id'=>create_function('$row', 'return "test";')), 'default')

    // option
    ->addColumnLink('approve', 'id', 'email', array('controller'=>'index', 'action'=>'index'))

    // set message if no data
    ->setNoDataMessage('works?')

    // data source
    ->setPaginator($this->paginator)

?>

<?=$this->htmlTable('test2')
    ->setPaginator($this->paginator)?>

<? assert($this->htmlTable('test1')->getSum('id')); ?>
Summary of ID column: <?=$this->htmlTable('test1')->getSum('id')?>

